Processing signals from microphones in consumer electronic devices such as smartphones, hearing aids, headsets and the like presents a range of design problems. There are usually multiple microphones to consider, including one or more microphones on the body of the device and one or more external microphones such as headset or hands-free car kit microphones. In smartphones these microphones can be used not only to capture speech for phone calls, but also for recording voice notes. In the case of devices with a camera, one or more microphones may be used to enable recording of an audio track to accompany video captured by the camera. Increasingly, more than one microphone is being provided on the body of the device, for example to improve noise cancellation as is addressed in GB2484722 (Wolfson Microelectronics).
The device hardware associated with the microphones should provide for sufficient microphone inputs, preferably with individually adjustable gains, and flexible internal routing to cover all usage scenarios, which can be numerous in the case of a smartphone with an applications processor. Telephony functions should include a “side tone” so that the user can hear their own voice, and acoustic echo cancellation. Jack insertion detection should be provided to enable seamless switching between internal to external microphones when a headset or external microphone is plugged in or disconnected.
Consequently, a range of digital signal processing applications involve the mixing of signals from multiple microphones, whether across the full audio band or in selected frequency subbands. Adaptive directional beamforming is one such application, and involves the signals from two or more microphones being mixed in a manner to maintain gain in a direction of interest (typically being the forward direction of the listener), while adaptively nulling background noise from other directions, such as conversations happening behind the listener. Adaptive directional beamforming works to null signals coming from a particular direction such as background speech, and in particular this approach only works on such correlated signals.
However wind noise detection and reduction is a particularly difficult problem in such devices. Wind noise is defined herein as a microphone signal generated from turbulence in an air stream flowing past microphone ports, as opposed to the sound of wind blowing past other objects such as the sound of rustling leaves as wind blows past a tree in the far field. Wind noise can be objectionable to the user, can mask other signals of interest, and can corrupt the device's ability to suppress background noise sources by beamforming. It is desirable that digital signal processing devices are configured to take steps to ameliorate the deleterious effects of wind noise upon signal quality. However, when wind noise is present, existing devices simply revert adaptive directional beamforming to an omnidirectional state by use of a primary microphone only. This is because the beamforming function cannot identify and thus cannot null a direction of origin of wind noise because wind noise is uncorrelated between microphones. Instead, disadvantageously, beamforming functions are usually corrupted by wind noise and respond inappropriately by actually amplifying uncorrelated noise such as wind noise. It is for this reason that existing devices tend to simply disable beamforming in the presence of wind noise and revert to a primary microphone and omnidirectional operation.
Any discussion of documents, acts, materials, devices, articles or the like which has been included in the present specification is solely for the purpose of providing a context for the present invention. It is not to be taken as an admission that any or all of these matters form part of the prior art base or were common general knowledge in the field relevant to the present invention as it existed before the priority date of each claim of this application.
Throughout this specification the word “comprise”, or variations such as “comprises” or “comprising”, will be understood to imply the inclusion of a stated element, integer or step, or group of elements, integers or steps, but not the exclusion of any other element, integer or step, or group of elements, integers or steps.
In this specification, a statement that an element may be “at least one of” a list of options is to be understood that the element may be any one of the listed options, or may be any combination of two or more of the listed options.